package com.kaifamiao.object;

/**
 * Object类常用方法:
 * (1)、toString
 * (2)、hashCode
 * (3)、getClass
 * (4)、equals(Object)
 */
public class TestObject {

    public static void main(String[] args) {
        // 通过调用Object的无参构造来创建Object实例
        Object o = new Object();

        // Object类中的 hashCode 用来获得指定实例(对象)的哈希码值
        int hash = o.hashCode();
        System.out.println( hash );
        // 用 Integer 类中的 toHexString 方法将 十进制整数 转换为 十六进制形式 后输出
        System.out.println( Integer.toHexString(hash) );

        // Object类中的 getClass 获得引用变量 o 所指向的堆区中的实例(对象)的类型
        // 返回值是个 java.lang.Class 类型的实例
        Class c = o.getClass();
        // 获得 引用变量 c 所指向的 实例(对象) 所表示的类的类名
        String className = c.getName();
        System.out.println( className );

        // Object类中的toString用来获得指定实例(对象)的描述信息
        // 即用一个字符串来描述一个实例(对象)
        String desc = o.toString();
        System.out.println( desc );

        Object a = o;
        System.out.println( a == o ); // true
        // Object类中的 equals 用来比较当前对象是否与另外一个对象"相等"
        boolean r = o.equals( a );
        System.out.println( r ); // true
        r = o.equals( null );
        System.out.println( r ); // false

    }

}
